Kotlin协程在Android中的高级应用:异步、流与状态管理
📚 共计 30 章节
01
协程基础回顾
协程是什么、为什么需要协程、协程与线程的区别、launch/async/runBlocking
基础
入门
02
协程上下文与调度器
Dispatchers详解、上下文继承与覆盖、withContext切换线程
调度
核心
03
协程作用域与结构化并发
GlobalScope vs CoroutineScope、结构化并发、父子协程取消与异常传播
作用域
结构化
04
协程的取消与超时
取消机制、isActive/ensureActive、withTimeout、不可取消协程
取消
超时
05
协程异常处理
try-catch、CoroutineExceptionHandler、SupervisorJob、异常聚合与传播
异常
健壮性
06
Flow基础
冷流与热流、flowOf/asFlow/flow{}、终端操作符 collect/toList/first
Flow
响应式
07
Flow的中间操作符
map/filter/transform/take/drop/reduce/fold 详解与实战
操作符
变换
08
Flow的线程切换与背压
flowOn、buffer、conflate、collectLatest 处理背压
背压
调度
09
Flow的异常处理与重试
catch、retry/retryWhen、onCompletion、try-catch最佳实践
异常
重试
10
StateFlow与SharedFlow
与LiveData对比、StateFlow场景、SharedFlow配置、选择策略
状态
热流
11
Channel
概念与类型(Rendezvous/Buffered/Conflated/Unlimited)、发送接收、关闭与迭代
通道
并发
12
Channel的高级用法
BroadcastChannel废弃与SharedFlow替代、fan-out/fan-in、背压策略
高级
模式
13
协程与Android生命周期
lifecycleScope、viewModelScope、repeatOnLifecycle、安全启动
生命周期
Android
14
协程与ViewModel
viewModelScope最佳实践、管理协程任务、Flow结合、UI状态处理
ViewModel
架构
15
协程与Room数据库
Room协程支持、Flow响应式查询、监听数据库变化、复杂查询
Room
数据库
16
协程与Retrofit网络请求
suspend函数支持、网络请求封装、错误处理与重试、取消与生命周期
网络
Retrofit
17
协程与WorkManager
CoroutineWorker、长时任务管理、取消策略
后台
WorkManager
18
协程与DataStore
协程API、Preferences/Proto DataStore、Flow响应式读取、数据迁移
存储
DataStore
19
协程与Compose
rememberCoroutineScope、LaunchedEffect/DisposableEffect、Flow收集
Compose
UI
20
协程与测试
runTest、TestCoroutineDispatcher/TestScope、虚拟时间、最佳实践
测试
调试
21
协程与依赖注入 (Hilt/Dagger)
作用域与组件生命周期、提供调度器、ViewModel注入、作用域绑定
DI
Hilt
22
协程与多线程并发
Mutex、Semaphore、共享状态、Actor模式
并发
锁
23
协程与协程间通信
Channel跨协程通信、Flow共享与重放、select多路复用、数据同步
通信
select
24
协程与性能优化
内存开销、协程池与调度器优化、避免泄漏、基准测试
性能
优化
25
协程与协程调试
调试技巧、Android Studio调试器、日志跟踪、堆栈分析
调试
工具
26
协程的嵌套与递归
递归遍历、树形结构管理、复杂依赖关系处理
递归
结构
27
协程的并发控制与限流
限流、节流、批量处理、优先级调度
控制
限流
28
协程的分布式与远程调用
分布式处理、远程调用、集群管理、容错与恢复
分布式
高级
29
协程在大型项目中的架构设计
模块化与解耦、代码组织规范、团队协作
架构
实战
30
协程总结与未来演进
最佳实践总结、常见问题与解决方案、学习资源与社区
总结
展望